Nun die Systemblockade. Hier zunächst Grundlagen, dann schauen wir uns mal ein Fallbeispiel an,
um das Problem ein bisschen besser zu verdeutlichen und dann gehen wir auf
Gegenmaßnahmen ein. Also um so eine Blockaden vielleicht überhaupt gar nicht erst auftreten
zu können, sie vorzubeugen, zu vermeiden oder sie zu erkennen und sich dann praktisch von
solch einer Blockadesituation irgendwie geeignet erholen zu können. Stillstand von Prozessen Deadly
Embraced. Das ist die Situation, wo also denn gekoppelte Prozesse gegenseitig auf die Aufhebung
einer Wartepedingung warten, wobei diese Wartepedingung aber eben durch Prozesse dieses
Systems, die untereinander gekoppelt sind, selbst aufgehoben werden müsste. Es reicht aus eine
einzige Wartepedingung zu haben, die sagt aber für gewöhnlich in so einer Situation etwas über die
Verfügbarkeit eines bestimmten Betriebsmittels aus, vielleicht auch mehrere Betriebsmittel,
aber es reicht dann sozusagen ein Betriebsmittel, das halt hier zu dieser Wartepedingung, die für
die Prozesse gelten, denn in Bezug stehen. Das ist unabhängig von der Art des Betriebsmittels,
aber es ist eben so, dass die Prozesse, die gekoppelten Prozesse, die Versorgung dieses
Betriebsmittels eben durch entsprechende Aktionen gleichgestellter anderer Prozesse erwarten. Also ein
ganz einfaches Beispiel ist so eine indirekte Maßnahme, wo ein Prozess speicherfrei gibt.
Speicher ist eine wiederverwendbare Ressource, wo denn dieser freigegebenen Speicher von einem
anderen Prozess, der darauf wartet, Speicher zugeteilt zu bekommen, genutzt werden kann,
ohne dass die Prozesse sich jetzt halt kennen müssen. Das können wirklich vollkommen
verschiedene Maschinenprogramme sein, geregelt im Betriebssystem natürlich wird dann diese
Speicherverwaltung, diese Betriebsmittelverwaltung bezüglich dieses gemeinsamen Hauptspeichers,
hätte man so eine Schiene. Eine andere direkte Art und Weise wäre die, dass ein Prozess zum
Beispiel auf den Empfang einer Nachricht wartet, die ihm ein anderer Prozess zusenden muss. Also
da sind denn die Prozesse, die kennen sich sehr wohl untereinander und der eine schickt dem anderen
einfach eine Nachricht zu, weil die miteinander kommunizieren wollen. In beiden Fällen, ob die
sich nun kennen, die Prozesse oder ob die sich nicht kennen, ob die sozusagen logisch eigentlich
unabhängig voneinander sind, kann es sehr wohl zu in ungünstigen Situationen, zu solchen
Verklemmungssituationen, zu so einem Stillstand dieser Prozesse kommen. Und wenn jetzt alle
Prozesse so handeln, also wenn alle Prozesse praktisch so eine Warte Bedingung entgegen sehen,
dass da mal irgendwann eine Ressource frei wird, dann wird eben überhaupt gar kein Betriebsmittel
verfügbar gestellt, weil kein anderer Prozess tatsächlich diese Anweisung der Freigabe ausführen
würde. Wir werden Beispiele davon noch mitbekommen. Nun ist es so, dass diese Situation,
von der wir hier sprechen, einfach entstehen kann, obwohl eben kein einziger Prozess mehr als die
insgesamt verfügbare Menge von Betriebsmitteln benötigt. Also wir hätten keinen einzigen Prozess
gesagt, ich möchte den gesamten 8 GB Hauptspeicher meines 8 GB großen physischen Hauptspeichers
belegen. Die Situation haben wir nicht. Die belegen immer nur Teile davon. Aber das machen eben alle
Prozesse. Und es führt dann nachher dann dazu, dass wenn denn jeder einen einzelnen Teil verwendet,
aber in Summe sozusagen diese Ansprüche den gesamtverfügbaren Hauptspeichervorrat überschreitet,
hätten wir so eine Situation. Also nochmal, kein einziger Prozess will alles haben. Die wollen
immer nur Teile davon haben. Und so eine Verklemmungssituation kann unabhängig davon
auftreten, ob denn praktisch diese Betriebsmittelzuteilung, von der wir hier immer
ausgehen müssen, in der Verantwortlichkeit des Betriebssystems liegt oder etwa des
Anwendungsprogramms selbst. Natürlich sprechen wir jetzt hier von Vorgängen, die vorwiegend
innerhalb von Betriebssystemen halt ablaufen. Aber auch Anwendungsprogramme selbst verwalten
Ressourcen auf ihrer Ebene. Sehr problemspizifische Ressourcen, die werden natürlich immer irgendwie
abgebildet auf die vom Betriebssystem bereitgestellten Betriebsmittel. Also wenn wir jetzt etwa an
Speicher denken. Aber natürlich können Anwendungsprozesse auf ihrer Ebene oberhalb
eines Betriebssystems sehr wohl in so einer Verklemmungssituation halt kommen. Und davon
kriegt ein Betriebssystem dann überhaupt nichts mit. Ihr Betriebssystem würde nur noch sehen,
die sind verklemmt, aber man wüsste überhaupt gar nicht mehr, warum die verklemmt sind. Eine
andere Situation hätte man denn halt innerhalb des Betriebssystems. Da ist ja die Verklemmung
Presenters
Zugänglich über
Offener Zugang
Dauer
00:20:35 Min
Aufnahmedatum
2020-12-14
Hochgeladen am
2020-12-14 13:39:52
Sprache
de-DE